Skip to content

Fix CI failures on Ubuntu 26.04 and Windows PyPy - #1393

Open
pganssle wants to merge 1 commit into
arrow-py:masterfrom
pganssle:fix-ci
Open

pganssle wants to merge 1 commit into
arrow-py:masterfrom
pganssle:fix-ci

Conversation

@pganssle

@pganssle pganssle commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • 🧪 Added tests for changed code.
  • 🛠️ All tests pass when run locally (run tox or make test to find out!).
  • 🧹 All linting checks pass when run locally (run tox -e lint or make lint to find out!).
  • 📚 Updated documentation for changed code.
  • ⏩ Code is up-to-date with the master branch.

Description of Changes

This fixes the three jobs that are failing on master. Only the CI workflow changes.

  • ubuntu-latest (3.8, 3.9): ubuntu-latest is now Ubuntu 26.04, which actions/setup-python has no 3.8 or 3.9 builds for. I've pinned those two to ubuntu-24.04.
  • windows-latest (pypy-3.11): This has been failing since September with IncompleteRead while building pyyaml. It fails at the same byte offsets every time, so I think it's a truncated download stuck in the shared Windows pip cache, which hasn't been refreshed since April. Adding the Python version to the cache key gives each job a fresh cache.

`ubuntu-latest` now points at Ubuntu 26.04, and `actions/setup-python`
does not provide Python 3.8 or 3.9 builds for it, so those two jobs fail
during setup. For now they are pinned to `ubuntu-24.04`, which still has
both versions available.

The `windows-latest (pypy-3.11)` job has been failing since at least
early September with `IncompleteRead` errors while downloading the build
dependencies for `pyyaml`, which has no PyPy wheel on Windows and so is
only built from source in that job. The read fails at exactly the same
byte offsets in every run, which suggests that the problem is a
truncated entry in the pip cache rather than the network. All Windows
jobs share a single cache entry keyed only on the OS and the requirements
files, and since `actions/cache` does not re-save on an exact key hit,
that entry has not been refreshed since it was created in April.

Adding the Python version to the cache key gives each job its own cache.
The one recent run that used a key like this missed the cache and passed.
@codecov

codecov Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2224255) to head (1926ece).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #1393   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           10        10           
  Lines         2315      2315           
  Branches       358       358           
=========================================
  Hits          2315      2315           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant